package ru.lenwp.operation.admin;

import ru.lenwp.context.Context;
import ru.lenwp.model.OperationInfo;
import ru.lenwp.model.User;
import ru.lenwp.operation.Operation;

import java.util.List;

import static ru.lenwp.util.ConsoleUtil.askMenuNumber;

/**
 * Created by Lenar on 04.08.2014.
 */
public class EditUserOperation implements Operation {

    private final Context context;

    public EditUserOperation(Context context) {
        this.context = context;
    }

    public void editUser() {
        System.out.println("Введите какого пользователя желаете отредактировать ");
        List<User> userList = context.getUserDao().allUser();
        new ShowUsersOperation(context).printAllUsers(userList);
        int indexUser = askMenuNumber();
        while (indexUser < 0 || indexUser >= context.getUserDao().allUser().size()) {
            indexUser = askMenuNumber();
        }
        User oldUser = userList.get(indexUser);
        User newUser = CreateNewUserOperation.createUser();
        newUser.setId(oldUser.getId());
        context.getUserDao().update(newUser);
    }

    @Override
    public OperationInfo execute() {
        editUser();
        return null;
    }

    @Override
    public String getOperationName() {
        return "Редактирование пользователя";
    }
}
